package com.ctshk.rpc.certificate.service;

import com.ctshk.common.dto.Result;
import com.ctshk.common.model.PageResponse;
import com.ctshk.rpc.certificate.dto.AppointmentHkMacauBridgeDTO;
import com.ctshk.rpc.certificate.dto.CertificateAcceptDTO;
import com.ctshk.rpc.certificate.dto.CertificateHkMacauBridgeDTO;
import com.ctshk.rpc.certificate.req.CertificateAcceptPageReq;
import com.ctshk.rpc.certificate.req.CertificateHkMacauBridgeReq;
import com.ctshk.rpc.certificate.req.ProcCommonCertificateReq;
import com.ctshk.rpc.certificate.req.QueryHkMacauBridgeReq;

/**
 * <p>
 * 粤港经港珠澳大桥口口岸入出内地商务车辆牌证业务 服务类
 * </p>
 *
 * @author 谢诗宏
 * @since 2021-03-25
 */
public interface ICertificateHkMacauBridgeService {
    /**
     * 粤港经港珠澳大桥口口岸入出内地商务车辆牌证登记
     * @param certificateHkMacauBridgeReq
     * @param userId
     * @return
     */
    Result saveHkMacauBridge(CertificateHkMacauBridgeReq certificateHkMacauBridgeReq, Long userId);

    /**
     * 粤港经港珠澳大桥口口岸入出内地商务车辆牌证信息详情
     * @param id
     * @return
     */
    CertificateHkMacauBridgeDTO queryDetail(Long id);

    /**
     * 修改粤港经港珠澳大桥口口岸入出内地商务车辆牌证信息
     * @param certificateHkMacauBridgeReq
     * @param userId
     * @return
     */
    Result updateHkMacauBridge(CertificateHkMacauBridgeReq certificateHkMacauBridgeReq, Long userId);

    /**
     * 处理粤港经港珠澳大桥口口岸入出内地商务车辆牌证预约信息
     * @param procReserveHkMacauBridgeReq
     * @param userId
     * @return
     */
    Result procReserveHkMacauBridge(ProcCommonCertificateReq procReserveHkMacauBridgeReq, Long userId);

    /**
     * 证件受理列表
     * @param acceptPageReq
     * @return
     */
    PageResponse<CertificateAcceptDTO> queryCertificateAcceptList(CertificateAcceptPageReq acceptPageReq);

    Result<AppointmentHkMacauBridgeDTO> queryAppointmentInfo(QueryHkMacauBridgeReq queryAppointmentInfoReq, Long userId);

    Result cancelAppointment(Long id, Long userId);
}
